package org.example.test.one;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.net.ConnectException;
import java.util.concurrent.TimeoutException;

// 按两次 Shift 打开“随处搜索”对话框并输入 `show whitespaces`，
// 然后按 Enter 键。现在，您可以在代码中看到空格字符。
public class Producer {
 public static final String QUEUE_NAME = "hello";
 public static void main(String[] args) throws IOException, TimeoutException {
     //创建连接工厂
     ConnectionFactory factory = new ConnectionFactory();
     // 工厂IP 连接RabbitMQ的队列
     factory.setHost("192.168.31.151");
     // 用户名
     factory.setUsername("admin");
     // 密码
     factory.setPassword("123");
     // 创建连接
     Connection connection = factory.newConnection();
     // 获取信道
     Channel channel = connection.createChannel();
     // 产生一个队列(参数1：队列名称，参数2：是否持久化(磁盘)，默认情况消息存储在内存中，参数3：是否只提供给一个消费者消费，是否进行消息共享，参数4：是否自动删除，参数5：其他参数)
     channel.queueDeclare(QUEUE_NAME,false,false,false,null);
     // 发消息
     String message = "hello world";
     /*
     参数1：交换机名称，如果没有指定则使用默认Default Exchage
     参数2：消息的路由键，简单模式可以传递队列名称
     参数3：消息的属性
     参数4：消息内容（二进制）
      */
     channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
     System.out.println("消息发送完毕");
 }
}
